package com.hxd.otc.module.my.contract;

import com.hxd.otc.module.my.bean.AdvertCoinPriceBean;
import com.hxd.otc.module.my.bean.AdvertCoinTypeBean;
import com.hxd.otc.module.my.bean.AdvertPreBean;
import com.hxd.otc.module.my.bean.BankCardBean;
import com.hxd.otc.mvp.base.IBasePresenter;
import com.hxd.otc.mvp.base.IBaseView;

import java.util.ArrayList;

/**
 * 作  者 :  李宗源
 * 时  间 :  2018/10/18 14:18
 * 描  述 :  ${发布广告Contract}
 */
public interface PublishAdvertisementContract {
    interface View extends IBaseView {

        void publishAdvertSuccess(boolean isBuy);

        void requestCoinTypeInfoSuccess(ArrayList<AdvertCoinTypeBean> coinTypeBeans);

        void requestBankCardListSuccess(ArrayList<BankCardBean> bankCardBeans);

        void publishAdvertFail(String errMessage);

        void updateFiat(String fiat);

        void updatePaymentMode(String fiat);

        void updateTrackingPlatformInfo();
    }

    interface Presenter extends IBasePresenter {
        ArrayList<String> getFiats();

        String getSelFiat();

        ArrayList<String> getCoins();

        String getSelCoin();

        void setSelFiat(String fiat);

        void setSelCoin(String coin);

        void setCoinTypes(ArrayList<AdvertCoinTypeBean> coinTypeBeans);

        void setTradeModes(ArrayList<BankCardBean> bankCardBeans);

        ArrayList<BankCardBean> getTradeModesByFiat(String fiat);

        AdvertCoinTypeBean getSelCoinTypeBeans();

        void publishAdvert(String singlePriceStr, String numsStr, boolean isBuy, String supportBank, int minQuota, int maxQuota);

        void publishEasyAdvert(String singlePriceStr, String numsStr, boolean isBuy, String supportBank, int minQuota, int maxQuota);

        void publishFloatAdvert(String numsStr, final boolean isBuy, String supportBank,
                                String floatPlat, double floatRate, String minPrice, int minQuota, int maxQuota);

        void requestBankCardList(final boolean showMessage);

        void requestCoinTypeInfo(final boolean showErrMessage);

        void setTempPaymentMode(ArrayList<BankCardBean> cardBeans);

        void requestPublishAdvertPre(final boolean showMessage);

        ArrayList<AdvertPreBean> getCurTrackingPlatformInfo();

        void updateTrackingPlatFormMaps(ArrayList<AdvertPreBean> curTrackingPlatformInfo);

        ArrayList<String> getTrackingPlatForm();

        String getSelTrackingPlatForm();

        void setSelTrackingPlatForm(String selTrackingPlatForm);

        AdvertPreBean getCurAdvertPreBean();

        AdvertCoinPriceBean getSelCoinPriceBean();
    }
}
